【例子介绍】网络爬虫学习资料
【相关图片】
【源码结构】
.
├── crawler
│ ├── workspace
│ │ ├── itcast-crawler-first
│ │ │ ├── itcast-crawler-first.iml
│ │ │ ├── itcast-crawler-jd.iml
│ │ │ ├── pom.xml
│ │ │ ├── src
│ │ │ │ ├── main
│ │ │ │ │ ├── java
│ │ │ │ │ │ └── cn
│ │ │ │ │ │ └── itcast
│ │ │ │ │ │ └── crawler
│ │ │ │ │ │ └── test
│ │ │ │ │ │ ├── CrawlerFirst.java
│ │ │ │ │ │ ├── HttpClientPoolTest.java
│ │ │ │ │ │ ├── HttpConfigTest.java
│ │ │ │ │ │ ├── HttpGetParamTest.java
│ │ │ │ │ │ ├── HttpGetTest.java
│ │ │ │ │ │ ├── HttpPostParamTest.java
│ │ │ │ │ │ └── HttpPostTest.java
│ │ │ │ │ └── resources
│ │ │ │ │ └── log4j.properties
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── jsoup
│ │ │ │ └── JsoupFirstTest.java
│ │ │ └── target
│ │ │ ├── classes
│ │ │ │ ├── cn
│ │ │ │ │ └── itcast
│ │ │ │ │ └── crawler
│ │ │ │ │ └── test
│ │ │ │ │ ├── CrawlerFirst.class
│ │ │ │ │ ├── HttpClientPoolTest.class
│ │ │ │ │ ├── HttpConfigTest.class
│ │ │ │ │ ├── HttpGetParamTest.class
│ │ │ │ │ ├── HttpGetTest.class
│ │ │ │ │ ├── HttpPostParamTest.class
│ │ │ │ │ └── HttpPostTest.class
│ │ │ │ └── log4j.properties
│ │ │ ├── generated-sources
│ │ │ │ └── annotations
│ │ │ ├── generated-test-sources
│ │ │ │ └── test-annotations
│ │ │ └── test-classes
│ │ │ └── jsoup
│ │ │ └── JsoupFirstTest.class
│ │ ├── itcast-crawler-jd
│ │ │ ├── itcast-crawler-jd.iml
│ │ │ ├── pom.xml
│ │ │ ├── src
│ │ │ │ ├── main
│ │ │ │ │ ├── java
│ │ │ │ │ │ └── cn
│ │ │ │ │ │ └── itcast
│ │ │ │ │ │ └── jd
│ │ │ │ │ │ ├── Application.java
│ │ │ │ │ │ ├── dao
│ │ │ │ │ │ │ └── ItemDao.java
│ │ │ │ │ │ ├── pojo
│ │ │ │ │ │ │ └── Item.java
│ │ │ │ │ │ ├── service
│ │ │ │ │ │ │ ├── ItemService.java
│ │ │ │ │ │ │ └── impl
│ │ │ │ │ │ │ └── ItemServiceImpl.java
│ │ │ │ │ │ ├── task
│ │ │ │ │ │ │ └── ItemTask.java
│ │ │ │ │ │ └── util
│ │ │ │ │ │ └── HttpUtils.java
│ │ │ │ │ └── resources
│ │ │ │ │ └── application.properties
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ └── target
│ │ │ ├── classes
│ │ │ │ ├── application.properties
│ │ │ │ └── cn
│ │ │ │ └── itcast
│ │ │ │ └── jd
│ │ │ │ ├── Application.class
│ │ │ │ ├── dao
│ │ │ │ │ └── ItemDao.class
│ │ │ │ ├── pojo
│ │ │ │ │ └── Item.class
│ │ │ │ ├── service
│ │ │ │ │ ├── ItemService.class
│ │ │ │ │ └── impl
│ │ │ │ │ └── ItemServiceImpl.class
│ │ │ │ ├── task
│ │ │ │ │ └── ItemTask.class
│ │ │ │ └── util
│ │ │ │ └── HttpUtils.class
│ │ │ └── generated-sources
│ │ │ └── annotations
│ │ ├── itcast-crawler-job
│ │ │ ├── itcast-crawler-job.iml
│ │ │ ├── pom.xml
│ │ │ ├── src
│ │ │ │ ├── main
│ │ │ │ │ ├── java
│ │ │ │ │ │ └── cn
│ │ │ │ │ │ └── itcast
│ │ │ │ │ │ └── job
│ │ │ │ │ │ ├── Application.java
│ │ │ │ │ │ ├── controller
│ │ │ │ │ │ │ └── SearchController.java
│ │ │ │ │ │ ├── dao
│ │ │ │ │ │ │ ├── JobInfoDao.java
│ │ │ │ │ │ │ └── JobRepository.java
│ │ │ │ │ │ ├── pojo
│ │ │ │ │ │ │ ├── JobInfo.java
│ │ │ │ │ │ │ ├── JobInfoField.java
│ │ │ │ │ │ │ └── JobResult.java
│ │ │ │ │ │ ├── service
│ │ │ │ │ │ │ ├── JobInfoService.java
│ │ │ │ │ │ │ ├── JobRepositoryService.java
│ │ │ │ │ │ │ └── impl
│ │ │ │ │ │ │ ├── JobInfoServiceImpl.java
│ │ │ │ │ │ │ └── JobRepositoryServiceImpl.java
│ │ │ │ │ │ └── task
│ │ │ │ │ │ ├── JobProcessor.java
│ │ │ │ │ │ ├── MathSalary.java
│ │ │ │ │ │ ├── ProxyTest.java
│ │ │ │ │ │ ├── SpringDataPipeline.java
│ │ │ │ │ │ └── TaskTest.java
│ │ │ │ │ └── resources
│ │ │ │ │ ├── application.properties
│ │ │ │ │ ├── log4j.properties
│ │ │ │ │ └── static
│ │ │ │ │ ├── search.html
│ │ │ │ │ └── source
│ │ │ │ │ ├── CV_QuickApply.js
│ │ │ │ │ ├── JsBase.js
│ │ │ │ │ ├── NewScrollText.js
│ │ │ │ │ ├── Qpost_set.js
│ │ │ │ │ ├── ScrollText.js
│ │ │ │ │ ├── area_array_c.js
│ │ │ │ │ ├── association_main.js
│ │ │ │ │ ├── base.css
│ │ │ │ │ ├── bsqqb0525_7150wh.gif
│ │ │ │ │ ├── common_association.js
│ │ │ │ │ ├── common_layer.js
│ │ │ │ │ ├── common_select.js
│ │ │ │ │ ├── delivery.js
│ │ │ │ │ ├── dw_joblist.css
│ │ │ │ │ ├── form.css
│ │ │ │ │ ├── funtype_array_c.js
│ │ │ │ │ ├── indtype_array_c.js
│ │ │ │ │ ├── jquery.js
│ │ │ │ │ ├── jquery.placeholder.min.js
│ │ │ │ │ ├── layer.js
│ │ │ │ │ ├── layer_c.js
│ │ │ │ │ ├── layer_main.js
│ │ │ │ │ ├── layer_main_map.js
│ │ │ │ │ ├── layer_main_navigation.js
│ │ │ │ │ ├── lfctc0524_7150wh.gif
│ │ │ │ │ ├── login.js
│ │ │ │ │ ├── logo_20jubilee_116x46.png
│ │ │ │ │ ├── merge_data_c.js
│ │ │ │ │ ├── mobile.js
│ │ │ │ │ ├── my_collection.js
│ │ │ │ │ ├── nnn0108_7203wh.gif
│ │ │ │ │ ├── panel-pop.css
│ │ │ │ │ ├── pointtrack.js
│ │ │ │ │ ├── pointtrack_search.js
│ │ │ │ │ ├── search.js
│ │ │ │ │ ├── search_box.js
│ │ │ │ │ ├── search_data_c.js
│ │ │ │ │ ├── search_result.js
│ │ │ │ │ ├── slogen.png
│ │ │ │ │ ├── tag_shixi.png
│ │ │ │ │ ├── trackData.js
│ │ │ │ │ ├── wc0319a_7235wh.gif
│ │ │ │ │ ├── web_bottom.png
│ │ │ │ │ ├── web_top.png
│ │ │ │ │ ├── weixin.png
│ │ │ │ │ ├── wylpc0517_7150wh.gif
│ │ │ │ │ └── zp0516b_7331wh.gif
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── cn
│ │ │ │ └── itcast
│ │ │ │ └── job
│ │ │ │ └── test
│ │ │ │ └── ESTest.java
│ │ │ └── target
│ │ │ ├── classes
│ │ │ │ ├── application.properties
│ │ │ │ ├── cn
│ │ │ │ │ └── itcast
│ │ │ │ │ └── job
│ │ │ │ │ ├── Application.class
│ │ │ │ │ ├── controller
│ │ │ │ │ │ └── SearchController.class
│ │ │ │ │ ├── dao
│ │ │ │ │ │ ├── JobInfoDao.class
│ │ │ │ │ │ └── JobRepository.class
│ │ │ │ │ ├── pojo
│ │ │ │ │ │ ├── JobInfo.class
│ │ │ │ │ │ ├── JobInfoField.class
│ │ │ │ │ │ └── JobResult.class
│ │ │ │ │ ├── service
│ │ │ │ │ │ ├── JobInfoService.class
│ │ │ │ │ │ ├── JobRepositoryService.class
│ │ │ │ │ │ └── impl
│ │ │ │ │ │ ├── JobInfoServiceImpl.class
│ │ │ │ │ │ └── JobRepositoryServiceImpl.class
│ │ │ │ │ └── task
│ │ │ │ │ ├── JobProcessor.class
│ │ │ │ │ ├── MathSalary.class
│ │ │ │ │ ├── ProxyTest.class
│ │ │ │ │ ├── SpringDataPipeline.class
│ │ │ │ │ └── TaskTest.class
│ │ │ │ ├── log4j.properties
│ │ │ │ └── static
│ │ │ │ ├── search.html
│ │ │ │ └── source
│ │ │ │ ├── CV_QuickApply.js
│ │ │ │ ├── JsBase.js
│ │ │ │ ├── NewScrollText.js
│ │ │ │ ├── Qpost_set.js
│ │ │ │ ├── ScrollText.js
│ │ │ │ ├── area_array_c.js
│ │ │ │ ├── association_main.js
│ │ │ │ ├── base.css
│ │ │ │ ├── bsqqb0525_7150wh.gif
│ │ │ │ ├── common_association.js
│ │ │ │ ├── common_layer.js
│ │ │ │ ├── common_select.js
│ │ │ │ ├── delivery.js
│ │ │ │ ├── dw_joblist.css
│ │ │ │ ├── form.css
│ │ │ │ ├── funtype_array_c.js
│ │ │ │ ├── indtype_array_c.js
│ │ │ │ ├── jquery.js
│ │ │ │ ├── jquery.placeholder.min.js
│ │ │ │ ├── layer.js
│ │ │ │ ├── layer_c.js
│ │ │ │ ├── layer_main.js
│ │ │ │ ├── layer_main_map.js
│ │ │ │ ├── layer_main_navigation.js
│ │ │ │ ├── lfctc0524_7150wh.gif
│ │ │ │ ├── login.js
│ │ │ │ ├── logo_20jubilee_116x46.png
│ │ │ │ ├── merge_data_c.js
│ │ │ │ ├── mobile.js
│ │ │ │ ├── my_collection.js
│ │ │ │ ├── nnn0108_7203wh.gif
│ │ │ │ ├── panel-pop.css
│ │ │ │ ├── pointtrack.js
│ │ │ │ ├── pointtrack_search.js
│ │ │ │ ├── search.js
│ │ │ │ ├── search_box.js
│ │ │ │ ├── search_data_c.js
│ │ │ │ ├── search_result.js
│ │ │ │ ├── slogen.png
│ │ │ │ ├── tag_shixi.png
│ │ │ │ ├── trackData.js
│ │ │ │ ├── wc0319a_7235wh.gif
│ │ │ │ ├── web_bottom.png
│ │ │ │ ├── web_top.png
│ │ │ │ ├── weixin.png
│ │ │ │ ├── wylpc0517_7150wh.gif
│ │ │ │ └── zp0516b_7331wh.gif
│ │ │ ├── generated-sources
│ │ │ │ └── annotations
│ │ │ ├── generated-test-sources
│ │ │ │ └── test-annotations
│ │ │ └── test-classes
│ │ │ └── cn
│ │ │ └── itcast
│ │ │ └── job
│ │ │ └── test
│ │ │ └── ESTest.class
│ │ ├── itcast-crawler-webmagic
│ │ │ ├── itcast-crawler-webmagic.iml
│ │ │ ├── pom.xml
│ │ │ ├── src
│ │ │ │ ├── main
│ │ │ │ │ ├── java
│ │ │ │ │ │ └── cn
│ │ │ │ │ │ └── itcast
│ │ │ │ │ │ └── webmagic
│ │ │ │ │ │ └── test
│ │ │ │ │ │ └── JobProcessor.java
│ │ │ │ │ └── resources
│ │ │ │ │ └── log4j.properties
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ └── target
│ │ │ ├── classes
│ │ │ │ ├── cn
│ │ │ │ │ └── itcast
│ │ │ │ │ └── webmagic
│ │ │ │ │ └── test
│ │ │ │ │ └── JobProcessor.class
│ │ │ │ └── log4j.properties
│ │ │ └── generated-sources
│ │ │ └── annotations
│ │ ├── itcast-es
│ │ │ ├── itcast-es.iml
│ │ │ ├── pom.xml
│ │ │ ├── src
│ │ │ │ ├── main
│ │ │ │ │ ├── java
│ │ │ │ │ │ └── cn
│ │ │ │ │ │ └── itcast
│ │ │ │ │ │ └── es
│ │ │ │ │ │ ├── dao
│ │ │ │ │ │ │ └── ItemRepository.java
│ │ │ │ │ │ ├── pojo
│ │ │ │ │ │ │ └── Item.java
│ │ │ │ │ │ ├── service
│ │ │ │ │ │ │ ├── ItemService.java
│ │ │ │ │ │ │ └── impl
│ │ │ │ │ │ │ └── ItemServiceImpl.java
│ │ │ │ │ │ └── test
│ │ │ │ │ │ └── ESTest.java
│ │ │ │ │ └── resources
│ │ │ │ │ └── applicationContext.xml
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ └── target
│ │ │ ├── classes
│ │ │ │ ├── applicationContext.xml
│ │ │ │ └── cn
│ │ │ │ └── itcast
│ │ │ │ └── es
│ │ │ │ ├── dao
│ │ │ │ │ └── ItemRepository.class
│ │ │ │ ├── pojo
│ │ │ │ │ └── Item.class
│ │ │ │ ├── service
│ │ │ │ │ ├── ItemService.class
│ │ │ │ │ └── impl
│ │ │ │ │ └── ItemServiceImpl.class
│ │ │ │ └── test
│ │ │ │ └── ESTest.class
│ │ │ └── generated-sources
│ │ │ └── annotations
│ │ ├── simhash
│ │ │ ├── pom.xml
│ │ │ ├── simhasher.iml
│ │ │ ├── src
│ │ │ │ ├── main
│ │ │ │ │ ├── java
│ │ │ │ │ │ └── com
│ │ │ │ │ │ └── lou
│ │ │ │ │ │ └── simhasher
│ │ │ │ │ │ ├── KeywordExtractor.java
│ │ │ │ │ │ ├── SimHasher.java
│ │ │ │ │ │ ├── seg
│ │ │ │ │ │ │ └── WordsSegment.java
│ │ │ │ │ │ └── util
│ │ │ │ │ │ ├── DicReader.java
│ │ │ │ │ │ └── FNVHash.java
│ │ │ │ │ └── resources
│ │ │ │ │ └── dict
│ │ │ │ │ ├── idf.utf8
│ │ │ │ │ └── stop_words.utf8
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── lou
│ │ │ │ └── simhasher
│ │ │ │ └── SimhashTest.java
│ │ │ └── target
│ │ │ ├── classes
│ │ │ │ ├── com
│ │ │ │ │ └── lou
│ │ │ │ │ └── simhasher
│ │ │ │ │ ├── KeywordExtractor.class
│ │ │ │ │ ├── SimHasher.class
│ │ │ │ │ ├── seg
│ │ │ │ │ │ └── WordsSegment.class
│ │ │ │ │ └── util
│ │ │ │ │ ├── DicReader.class
│ │ │ │ │ └── FNVHash.class
│ │ │ │ └── dict
│ │ │ │ ├── idf.utf8
│ │ │ │ └── stop_words.utf8
│ │ │ ├── generated-sources
│ │ │ │ └── annotations
│ │ │ ├── generated-test-sources
│ │ │ │ └── test-annotations
│ │ │ ├── maven-archiver
│ │ │ │ └── pom.properties
│ │ │ ├── maven-status
│ │ │ │ └── maven-compiler-plugin
│ │ │ │ ├── compile
│ │ │ │ │ └── default-compile
│ │ │ │ │ ├── createdFiles.lst
│ │ │ │ │ └── inputFiles.lst
│ │ │ │ └── testCompile
│ │ │ │ └── default-testCompile
│ │ │ │ ├── createdFiles.lst
│ │ │ │ └── inputFiles.lst
│ │ │ ├── simhasher-0.0.1-SNAPSHOT.jar
│ │ │ └── test-classes
│ │ │ └── com
│ │ │ └── lou
│ │ │ └── simhasher
│ │ │ └── SimhashTest.class
│ │ └── webmagic-core
│ │ ├── README.md
│ │ ├── module_webmagic-core.xml
│ │ ├── pom.xml
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── us
│ │ │ │ │ └── codecraft
│ │ │ │ │ └── webmagic
│ │ │ │ │ ├── Page.java
│ │ │ │ │ ├── Request.java
│ │ │ │ │ ├── ResultItems.java
│ │ │ │ │ ├── Site.java
│ │ │ │ │ ├── Spider.java
│ │ │ │ │ ├── SpiderListener.java
│ │ │ │ │ ├── Task.java
│ │ │ │ │ ├── downloader
│ │ │ │ │ │ ├── AbstractDownloader.java
│ │ │ │ │ │ ├── CustomRedirectStrategy.java
│ │ │ │ │ │ ├── Downloader.java
│ │ │ │ │ │ ├── HttpClientDownloader.java
│ │ │ │ │ │ ├── HttpClientGenerator.java
│ │ │ │ │ │ ├── HttpClientRequestContext.java
│ │ │ │ │ │ ├── HttpUriRequestConverter.java
│ │ │ │ │ │ └── package.html
│ │ │ │ │ ├── model
│ │ │ │ │ │ └── HttpRequestBody.java
│ │ │ │ │ ├── package.html
│ │ │ │ │ ├── pipeline
│ │ │ │ │ │ ├── CollectorPipeline.java
│ │ │ │ │ │ ├── ConsolePipeline.java
│ │ │ │ │ │ ├── FilePipeline.java
│ │ │ │ │ │ ├── Pipeline.java
│ │ │ │ │ │ ├── ResultItemsCollectorPipeline.java
│ │ │ │ │ │ └── package.html
│ │ │ │ │ ├── processor
│ │ │ │ │ │ ├── PageProcessor.java
│ │ │ │ │ │ ├── SimplePageProcessor.java
│ │ │ │ │ │ ├── example
│ │ │ │ │ │ │ ├── BaiduBaikePageProcessor.java
│ │ │ │ │ │ │ ├── GithubRepoPageProcessor.java
│ │ │ │ │ │ │ └── ZhihuPageProcessor.java
│ │ │ │ │ │ └── package.html
│ │ │ │ │ ├── proxy
│ │ │ │ │ │ ├── Proxy.java
│ │ │ │ │ │ ├── ProxyProvider.java
│ │ │ │ │ │ └── SimpleProxyProvider.java
│ │ │ │ │ ├── scheduler
│ │ │ │ │ │ ├── DuplicateRemovedScheduler.java
│ │ │ │ │ │ ├── MonitorableScheduler.java
│ │ │ │ │ │ ├── PriorityScheduler.java
│ │ │ │ │ │ ├── QueueScheduler.java
│ │ │ │ │ │ ├── Scheduler.java
│ │ │ │ │ │ ├── component
│ │ │ │ │ │ │ ├── DuplicateRemover.java
│ │ │ │ │ │ │ ├── HashSetDuplicateRemover.java
│ │ │ │ │ │ │ └── package.html
│ │ │ │ │ │ └── package.html
│ │ │ │ │ ├── selector
│ │ │ │ │ │ ├── AbstractSelectable.java
│ │ │ │ │ │ ├── AndSelector.java
│ │ │ │ │ │ ├── BaseElementSelector.java
│ │ │ │ │ │ ├── CssSelector.java
│ │ │ │ │ │ ├── ElementSelector.java
│ │ │ │ │ │ ├── Html.java
│ │ │ │ │ │ ├── HtmlNode.java
│ │ │ │ │ │ ├── Json.java
│ │ │ │ │ │ ├── JsonPathSelector.java
│ │ │ │ │ │ ├── LinksSelector.java
│ │ │ │ │ │ ├── OrSelector.java
│ │ │ │ │ │ ├── PlainText.java
│ │ │ │ │ │ ├── RegexResult.java
│ │ │ │ │ │ ├── RegexSelector.java
│ │ │ │ │ │ ├── ReplaceSelector.java
│ │ │ │ │ │ ├── Selectable.java
│ │ │ │ │ │ ├── Selector.java
│ │ │ │ │ │ ├── Selectors.java
│ │ │ │ │ │ ├── SmartContentSelector.java
│ │ │ │ │ │ ├── XpathSelector.java
│ │ │ │ │ │ └── package.html
│ │ │ │ │ ├── thread
│ │ │ │ │ │ └── CountableThreadPool.java
│ │ │ │ │ └── utils
│ │ │ │ │ ├── CharsetUtils.java
│ │ │ │ │ ├── Experimental.java
│ │ │ │ │ ├── FilePersistentBase.java
│ │ │ │ │ ├── HttpClientUtils.java
│ │ │ │ │ ├── HttpConstant.java
│ │ │ │ │ ├── NumberUtils.java
│ │ │ │ │ ├── ProxyUtils.java
│ │ │ │ │ ├── UrlUtils.java
│ │ │ │ │ ├── WMCollections.java
│ │ │ │ │ └── package.html
│ │ │ │ └── resources
│ │ │ │ └── log4j.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ │ └── us
│ │ │ │ └── codecraft
│ │ │ │ └── webmagic
│ │ │ │ ├── HtmlTest.java
│ │ │ │ ├── RequestTest.java
│ │ │ │ ├── ResultItemsTest.java
│ │ │ │ ├── SpiderTest.java
│ │ │ │ ├── downloader
│ │ │ │ │ ├── HttpClientDownloaderTest.java
│ │ │ │ │ ├── HttpUriRequestConverterTest.java
│ │ │ │ │ ├── MockGithubDownloader.java
│ │ │ │ │ └── SSLCompatibilityTest.java
│ │ │ │ ├── example
│ │ │ │ │ └── GithubRepoPageProcessorTest.java
│ │ │ │ ├── pipeline
│ │ │ │ │ └── FilePipelineTest.java
│ │ │ │ ├── proxy
│ │ │ │ │ ├── ProxyTest.java
│ │ │ │ │ └── SimpleProxyProviderTest.java
│ │ │ │ ├── scheduler
│ │ │ │ │ ├── DuplicateRemovedSchedulerTest.java
│ │ │ │ │ └── PrioritySchedulerTest.java
│ │ │ │ ├── selector
│ │ │ │ │ ├── ExtractorsTest.java
│ │ │ │ │ ├── JsonPathSelectorTest.java
│ │ │ │ │ ├── JsonTest.java
│ │ │ │ │ ├── LinksSelectorTest.java
│ │ │ │ │ ├── RegexSelectorTest.java
│ │ │ │ │ └── SelectorTest.java
│ │ │ │ └── utils
│ │ │ │ └── UrlUtilsTest.java
│ │ │ └── resources
│ │ │ ├── html
│ │ │ │ └── mock-github.html
│ │ │ └── log4j.xml
│ │ ├── target
│ │ │ ├── apidocs
│ │ │ │ ├── allclasses-frame.html
│ │ │ │ ├── allclasses-noframe.html
│ │ │ │ ├── constant-values.html
│ │ │ │ ├── deprecated-list.html
│ │ │ │ ├── help-doc.html
│ │ │ │ ├── index-all.html
│ │ │ │ ├── index.html
│ │ │ │ ├── overview-frame.html
│ │ │ │ ├── overview-summary.html
│ │ │ │ ├── overview-tree.html
│ │ │ │ ├── package-list
│ │ │ │ ├── script.js
│ │ │ │ ├── serialized-form.html
│ │ │ │ ├── stylesheet.css
│ │ │ │ └── us
│ │ │ │ └── codecraft
│ │ │ │ └── webmagic
│ │ │ │ ├── Page.html
│ │ │ │ ├── Request.html
│ │ │ │ ├── ResultItems.html
│ │ │ │ ├── Site.html
│ │ │ │ ├── Spider.Status.html
│ │ │ │ ├── Spider.html
│ │ │ │ ├── SpiderListener.html
│ │ │ │ ├── Task.html
│ │ │ │ ├── class-use
│ │ │ │ │ ├── Page.html
│ │ │ │ │ ├── Request.html
│ │ │ │ │ ├── ResultItems.html
│ │ │ │ │ ├── Site.html
│ │ │ │ │ ├── Spider.Status.html
│ │ │ │ │ ├── Spider.html
│ │ │ │ │ ├── SpiderListener.html
│ │ │ │ │ └── Task.html
│ │ │ │ ├── downloader
│ │ │ │ │ ├── AbstractDownloader.html
│ │ │ │ │ ├── CustomRedirectStrategy.html
│ │ │ │ │ ├── Downloader.html
│ │ │ │ │ ├── HttpClientDownloader.html
│ │ │ │ │ ├── HttpClientGenerator.html
│ │ │ │ │ ├── HttpClientRequestContext.html
│ │ │ │ │ ├── HttpUriRequestConverter.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ ├── AbstractDownloader.html
│ │ │ │ │ │ ├── CustomRedirectStrategy.html
│ │ │ │ │ │ ├── Downloader.html
│ │ │ │ │ │ ├── HttpClientDownloader.html
│ │ │ │ │ │ ├── HttpClientGenerator.html
│ │ │ │ │ │ ├── HttpClientRequestContext.html
│ │ │ │ │ │ └── HttpUriRequestConverter.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ ├── model
│ │ │ │ │ ├── HttpRequestBody.ContentType.html
│ │ │ │ │ ├── HttpRequestBody.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ ├── HttpRequestBody.ContentType.html
│ │ │ │ │ │ └── HttpRequestBody.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ ├── package-frame.html
│ │ │ │ ├── package-summary.html
│ │ │ │ ├── package-tree.html
│ │ │ │ ├── package-use.html
│ │ │ │ ├── pipeline
│ │ │ │ │ ├── CollectorPipeline.html
│ │ │ │ │ ├── ConsolePipeline.html
│ │ │ │ │ ├── FilePipeline.html
│ │ │ │ │ ├── Pipeline.html
│ │ │ │ │ ├── ResultItemsCollectorPipeline.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ ├── CollectorPipeline.html
│ │ │ │ │ │ ├── ConsolePipeline.html
│ │ │ │ │ │ ├── FilePipeline.html
│ │ │ │ │ │ ├── Pipeline.html
│ │ │ │ │ │ └── ResultItemsCollectorPipeline.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ ├── processor
│ │ │ │ │ ├── PageProcessor.html
│ │ │ │ │ ├── SimplePageProcessor.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ ├── PageProcessor.html
│ │ │ │ │ │ └── SimplePageProcessor.html
│ │ │ │ │ ├── example
│ │ │ │ │ │ ├── BaiduBaikePageProcessor.html
│ │ │ │ │ │ ├── GithubRepoPageProcessor.html
│ │ │ │ │ │ ├── ZhihuPageProcessor.html
│ │ │ │ │ │ ├── class-use
│ │ │ │ │ │ │ ├── BaiduBaikePageProcessor.html
│ │ │ │ │ │ │ ├── GithubRepoPageProcessor.html
│ │ │ │ │ │ │ └── ZhihuPageProcessor.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ ├── package-tree.html
│ │ │ │ │ │ └── package-use.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ ├── proxy
│ │ │ │ │ ├── Proxy.html
│ │ │ │ │ ├── ProxyProvider.html
│ │ │ │ │ ├── SimpleProxyProvider.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ ├── Proxy.html
│ │ │ │ │ │ ├── ProxyProvider.html
│ │ │ │ │ │ └── SimpleProxyProvider.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ ├── scheduler
│ │ │ │ │ ├── DuplicateRemovedScheduler.html
│ │ │ │ │ ├── MonitorableScheduler.html
│ │ │ │ │ ├── PriorityScheduler.html
│ │ │ │ │ ├── QueueScheduler.html
│ │ │ │ │ ├── Scheduler.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ ├── DuplicateRemovedScheduler.html
│ │ │ │ │ │ ├── MonitorableScheduler.html
│ │ │ │ │ │ ├── PriorityScheduler.html
│ │ │ │ │ │ ├── QueueScheduler.html
│ │ │ │ │ │ └── Scheduler.html
│ │ │ │ │ ├── component
│ │ │ │ │ │ ├── DuplicateRemover.html
│ │ │ │ │ │ ├── HashSetDuplicateRemover.html
│ │ │ │ │ │ ├── class-use
│ │ │ │ │ │ │ ├── DuplicateRemover.html
│ │ │ │ │ │ │ └── HashSetDuplicateRemover.html
│ │ │ │ │ │ ├── package-frame.html
│ │ │ │ │ │ ├── package-summary.html
│ │ │ │ │ │ ├── package-tree.html
│ │ │ │ │ │ └── package-use.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ ├── selector
│ │ │ │ │ ├── AbstractSelectable.html
│ │ │ │ │ ├── AndSelector.html
│ │ │ │ │ ├── BaseElementSelector.html
│ │ │ │ │ ├── CssSelector.html
│ │ │ │ │ ├── ElementSelector.html
│ │ │ │ │ ├── Html.html
│ │ │ │ │ ├── HtmlNode.html
│ │ │ │ │ ├── Json.html
│ │ │ │ │ ├── JsonPathSelector.html
│ │ │ │ │ ├── LinksSelector.html
│ │ │ │ │ ├── OrSelector.html
│ │ │ │ │ ├── PlainText.html
│ │ │ │ │ ├── RegexSelector.html
│ │ │ │ │ ├── ReplaceSelector.html
│ │ │ │ │ ├── Selectable.html
│ │ │ │ │ ├── Selector.html
│ │ │ │ │ ├── Selectors.html
│ │ │ │ │ ├── SmartContentSelector.html
│ │ │ │ │ ├── XpathSelector.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ ├── AbstractSelectable.html
│ │ │ │ │ │ ├── AndSelector.html
│ │ │ │ │ │ ├── BaseElementSelector.html
│ │ │ │ │ │ ├── CssSelector.html
│ │ │ │ │ │ ├── ElementSelector.html
│ │ │ │ │ │ ├── Html.html
│ │ │ │ │ │ ├── HtmlNode.html
│ │ │ │ │ │ ├── Json.html
│ │ │ │ │ │ ├── JsonPathSelector.html
│ │ │ │ │ │ ├── LinksSelector.html
│ │ │ │ │ │ ├── OrSelector.html
│ │ │ │ │ │ ├── PlainText.html
│ │ │ │ │ │ ├── RegexSelector.html
│ │ │ │ │ │ ├── ReplaceSelector.html
│ │ │ │ │ │ ├── Selectable.html
│ │ │ │ │ │ ├── Selector.html
│ │ │ │ │ │ ├── Selectors.html
│ │ │ │ │ │ ├── SmartContentSelector.html
│ │ │ │ │ │ └── XpathSelector.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ ├── thread
│ │ │ │ │ ├── CountableThreadPool.html
│ │ │ │ │ ├── class-use
│ │ │ │ │ │ └── CountableThreadPool.html
│ │ │ │ │ ├── package-frame.html
│ │ │ │ │ ├── package-summary.html
│ │ │ │ │ ├── package-tree.html
│ │ │ │ │ └── package-use.html
│ │ │ │ └── utils
│ │ │ │ ├── CharsetUtils.html
│ │ │ │ ├── Experimental.html
│ │ │ │ ├── FilePersistentBase.html
│ │ │ │ ├── HttpClientUtils.html
│ │ │ │ ├── HttpConstant.Header.html
│ │ │ │ ├── HttpConstant.Method.html
│ │ │ │ ├── HttpConstant.StatusCode.html
│ │ │ │ ├── HttpConstant.html
│ │ │ │ ├── NumberUtils.html
│ │ │ │ ├── ProxyUtils.html
│ │ │ │ ├── UrlUtils.html
│ │ │ │ ├── WMCollections.html
│ │ │ │ ├── class-use
│ │ │ │ │ ├── CharsetUtils.html
│ │ │ │ │ ├── Experimental.html
│ │ │ │ │ ├── FilePersistentBase.html
│ │ │ │ │ ├── HttpClientUtils.html
│ │ │ │ │ ├── HttpConstant.Header.html
│ │ │ │ │ ├── HttpConstant.Method.html
│ │ │ │ │ ├── HttpConstant.StatusCode.html
│ │ │ │ │ ├── HttpConstant.html
│ │ │ │ │ ├── NumberUtils.html
│ │ │ │ │ ├── ProxyUtils.html
│ │ │ │ │ ├── UrlUtils.html
│ │ │ │ │ └── WMCollections.html
│ │ │ │ ├── package-frame.html
│ │ │ │ ├── package-summary.html
│ │ │ │ ├── package-tree.html
│ │ │ │ └── package-use.html
│ │ │ ├── classes
│ │ │ │ ├── log4j.xml
│ │ │ │ └── us
│ │ │ │ └── codecraft
│ │ │ │ └── webmagic
│ │ │ │ ├── Page.class
│ │ │ │ ├── Request.class
│ │ │ │ ├── ResultItems.class
│ │ │ │ ├── Site$1.class
│ │ │ │ ├── Site.class
│ │ │ │ ├── Spider$1.class
│ │ │ │ ├── Spider$Status.class
│ │ │ │ ├── Spider.class
│ │ │ │ ├── SpiderListener.class
│ │ │ │ ├── Task.class
│ │ │ │ ├── downloader
│ │ │ │ │ ├── AbstractDownloader.class
│ │ │ │ │ ├── CustomRedirectStrategy.class
│ │ │ │ │ ├── Downloader.class
│ │ │ │ │ ├── HttpClientDownloader.class
│ │ │ │ │ ├── HttpClientGenerator$1.class
│ │ │ │ │ ├── HttpClientGenerator$2.class
│ │ │ │ │ ├── HttpClientGenerator.class
│ │ │ │ │ ├── HttpClientRequestContext.class
│ │ │ │ │ └── HttpUriRequestConverter.class
│ │ │ │ ├── model
│ │ │ │ │ ├── HttpRequestBody$ContentType.class
│ │ │ │ │ └── HttpRequestBody.class
│ │ │ │ ├── pipeline
│ │ │ │ │ ├── CollectorPipeline.class
│ │ │ │ │ ├── ConsolePipeline.class
│ │ │ │ │ ├── FilePipeline.class
│ │ │ │ │ ├── Pipeline.class
│ │ │ │ │ └── ResultItemsCollectorPipeline.class
│ │ │ │ ├── processor
│ │ │ │ │ ├── PageProcessor.class
│ │ │ │ │ ├── SimplePageProcessor.class
│ │ │ │ │ └── example
│ │ │ │ │ ├── BaiduBaikePageProcessor.class
│ │ │ │ │ ├── GithubRepoPageProcessor.class
│ │ │ │ │ └── ZhihuPageProcessor.class
│ │ │ │ ├── proxy
│ │ │ │ │ ├── Proxy.class
│ │ │ │ │ ├── ProxyProvider.class
│ │ │ │ │ └── SimpleProxyProvider.class
│ │ │ │ ├── scheduler
│ │ │ │ │ ├── DuplicateRemovedScheduler.class
│ │ │ │ │ ├── MonitorableScheduler.class
│ │ │ │ │ ├── PriorityScheduler$1.class
│ │ │ │ │ ├── PriorityScheduler$2.class
│ │ │ │ │ ├── PriorityScheduler.class
│ │ │ │ │ ├── QueueScheduler.class
│ │ │ │ │ ├── Scheduler.class
│ │ │ │ │ └── component
│ │ │ │ │ ├── DuplicateRemover.class
│ │ │ │ │ └── HashSetDuplicateRemover.class
│ │ │ │ ├── selector
│ │ │ │ │ ├── AbstractSelectable.class
│ │ │ │ │ ├── AndSelector.class
│ │ │ │ │ ├── BaseElementSelector.class
│ │ │ │ │ ├── CssSelector.class
│ │ │ │ │ ├── ElementSelector.class
│ │ │ │ │ ├── Html.class
│ │ │ │ │ ├── HtmlNode.class
│ │ │ │ │ ├── Json.class
│ │ │ │ │ ├── JsonPathSelector.class
│ │ │ │ │ ├── LinksSelector.class
│ │ │ │ │ ├── OrSelector.class
│ │ │ │ │ ├── PlainText.class
│ │ │ │ │ ├── RegexResult.class
│ │ │ │ │ ├── RegexSelector.class
│ │ │ │ │ ├── ReplaceSelector.class
│ │ │ │ │ ├── Selectable.class
│ │ │ │ │ ├── Selector.class
│ │ │ │ │ ├── Selectors.class
│ │ │ │ │ ├── SmartContentSelector.class
│ │ │ │ │ └── XpathSelector.class
│ │ │ │ ├── thread
│ │ │ │ │ ├── CountableThreadPool$1.class
│ │ │ │ │ └── CountableThreadPool.class
│ │ │ │ └── utils
│ │ │ │ ├── CharsetUtils.class
│ │ │ │ ├── Experimental.class
│ │ │ │ ├── FilePersistentBase.class
│ │ │ │ ├── HttpClientUtils.class
│ │ │ │ ├── HttpConstant$Header.class
│ │ │ │ ├── HttpConstant$Method.class
│ │ │ │ ├── HttpConstant$StatusCode.class
│ │ │ │ ├── HttpConstant.class
│ │ │ │ ├── NumberUtils.class
│ │ │ │ ├── ProxyUtils.class
│ │ │ │ ├── UrlUtils.class
│ │ │ │ └── WMCollections.class
│ │ │ ├── generated-sources
│ │ │ │ └── annotations
│ │ │ ├── generated-test-sources
│ │ │ │ └── test-annotations
│ │ │ ├── javadoc-bundle-options
│ │ │ │ ├── javadoc-options-javadoc-resources.xml
│ │ │ │ └── package-list
│ │ │ ├── maven-archiver
│ │ │ │ └── pom.properties
│ │ │ ├── maven-status
│ │ │ │ └── maven-compiler-plugin
│ │ │ │ ├── compile
│ │ │ │ │ └── default-compile
│ │ │ │ │ ├── createdFiles.lst
│ │ │ │ │ └── inputFiles.lst
│ │ │ │ └── testCompile
│ │ │ │ └── default-testCompile
│ │ │ │ ├── createdFiles.lst
│ │ │ │ └── inputFiles.lst
│ │ │ ├── test-classes
│ │ │ │ ├── html
│ │ │ │ │ └── mock-github.html
│ │ │ │ ├── log4j.xml
│ │ │ │ └── us
│ │ │ │ └── codecraft
│ │ │ │ └── webmagic
│ │ │ │ ├── HtmlTest.class
│ │ │ │ ├── RequestTest.class
│ │ │ │ ├── ResultItemsTest.class
│ │ │ │ ├── SpiderTest$1.class
│ │ │ │ ├── SpiderTest$2.class
│ │ │ │ ├── SpiderTest$3.class
│ │ │ │ ├── SpiderTest$4.class
│ │ │ │ ├── SpiderTest.class
│ │ │ │ ├── downloader
│ │ │ │ │ ├── HttpClientDownloaderTest$1.class
│ │ │ │ │ ├── HttpClientDownloaderTest$10.class
│ │ │ │ │ ├── HttpClientDownloaderTest$11.class
│ │ │ │ │ ├── HttpClientDownloaderTest$12.class
│ │ │ │ │ ├── HttpClientDownloaderTest$2.class
│ │ │ │ │ ├── HttpClientDownloaderTest$3.class
│ │ │ │ │ ├── HttpClientDownloaderTest$4.class
│ │ │ │ │ ├── HttpClientDownloaderTest$5.class
│ │ │ │ │ ├── HttpClientDownloaderTest$6.class
│ │ │ │ │ ├── HttpClientDownloaderTest$7.class
│ │ │ │ │ ├── HttpClientDownloaderTest$8.class
│ │ │ │ │ ├── HttpClientDownloaderTest$9.class
│ │ │ │ │ ├── HttpClientDownloaderTest.class
│ │ │ │ │ ├── HttpUriRequestConverterTest.class
│ │ │ │ │ ├── MockGithubDownloader.class
│ │ │ │ │ └── SSLCompatibilityTest.class
│ │ │ │ ├── example
│ │ │ │ │ ├── GithubRepoPageProcessorTest$1.class
│ │ │ │ │ └── GithubRepoPageProcessorTest.class
│ │ │ │ ├── pipeline
│ │ │ │ │ ├── FilePipelineTest$1.class
│ │ │ │ │ └── FilePipelineTest.class
│ │ │ │ ├── proxy
│ │ │ │ │ ├── ProxyTest$Fetch.class
│ │ │ │ │ ├── ProxyTest.class
│ │ │ │ │ └── SimpleProxyProviderTest.class
│ │ │ │ ├── scheduler
│ │ │ │ │ ├── DuplicateRemovedSchedulerTest$1.class
│ │ │ │ │ ├── DuplicateRemovedSchedulerTest.class
│ │ │ │ │ ├── PrioritySchedulerTest$1.class
│ │ │ │ │ └── PrioritySchedulerTest.class
│ │ │ │ ├── selector
│ │ │ │ │ ├── ExtractorsTest.class
│ │ │ │ │ ├── JsonPathSelectorTest.class
│ │ │ │ │ ├── JsonTest.class
│ │ │ │ │ ├── LinksSelectorTest.class
│ │ │ │ │ ├── RegexSelectorTest.class
│ │ │ │ │ └── SelectorTest.class
│ │ │ │ └── utils
│ │ │ │ └── UrlUtilsTest.class
│ │ │ ├── webmagic-core-0.7.3-javadoc.jar
│ │ │ ├── webmagic-core-0.7.3-sources.jar
│ │ │ └── webmagic-core-0.7.3.jar
│ │ └── webmagic-core.iml
│ ├── workspace.zip
│ ├── 爬虫day01.docx
│ ├── 爬虫day02.docx
│ ├── 爬虫day03.docx
│ ├── 课前资料
│ │ ├── CronExpBuilder(表达式生成器) .jar
│ │ ├── ElasticSearch软件
│ │ │ ├── elasticsearch-5.6.8.zip
│ │ │ ├── elasticsearch-analysis-ik-5.6.8.zip
│ │ │ ├── elasticsearch-head-master.zip
│ │ │ ├── kibana-5.6.8-windows-x86.zip
│ │ │ ├── logstash-5.6.8.zip
│ │ │ └── node.js
│ │ │ └── node-v8.9.4-x64.msi
│ │ ├── W3School离线手册(2017.03.11版).chm
│ │ ├── simhash
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ └── lou
│ │ │ │ │ └── simhasher
│ │ │ │ │ ├── KeywordExtractor.java
│ │ │ │ │ ├── SimHasher(1).java
│ │ │ │ │ ├── seg
│ │ │ │ │ │ └── WordsSegment.java
│ │ │ │ │ └── util
│ │ │ │ │ ├── DicReader.java
│ │ │ │ │ └── FNVHash.java
│ │ │ │ └── resources
│ │ │ │ └── dict
│ │ │ │ ├── idf.utf8
│ │ │ │ └── stop_words.utf8
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── lou
│ │ │ └── simhasher
│ │ │ └── SimhashTest.java
│ │ ├── static
│ │ │ ├── search.html
│ │ │ └── source
│ │ │ ├── CV_QuickApply.js
│ │ │ ├── JsBase.js
│ │ │ ├── NewScrollText.js
│ │ │ ├── Qpost_set.js
│ │ │ ├── ScrollText.js
│ │ │ ├── area_array_c.js
│ │ │ ├── association_main.js
│ │ │ ├── base.css
│ │ │ ├── bsqqb0525_7150wh.gif
│ │ │ ├── common_association.js
│ │ │ ├── common_layer.js
│ │ │ ├── common_select.js
│ │ │ ├── delivery.js
│ │ │ ├── dw_joblist.css
│ │ │ ├── form.css
│ │ │ ├── funtype_array_c.js
│ │ │ ├── indtype_array_c.js
│ │ │ ├── jquery.js
│ │ │ ├── jquery.placeholder.min.js
│ │ │ ├── layer.js
│ │ │ ├── layer_c.js
│ │ │ ├── layer_main.js
│ │ │ ├── layer_main_map.js
│ │ │ ├── layer_main_navigation.js
│ │ │ ├── lfctc0524_7150wh.gif
│ │ │ ├── login.js
│ │ │ ├── logo_20jubilee_116x46.png
│ │ │ ├── merge_data_c.js
│ │ │ ├── mobile.js
│ │ │ ├── my_collection.js
│ │ │ ├── nnn0108_7203wh.gif
│ │ │ ├── panel-pop.css
│ │ │ ├── pointtrack.js
│ │ │ ├── pointtrack_search.js
│ │ │ ├── search.js
│ │ │ ├── search_box.js
│ │ │ ├── search_data_c.js
│ │ │ ├── search_result.js
│ │ │ ├── slogen.png
│ │ │ ├── tag_shixi.png
│ │ │ ├── trackData.js
│ │ │ ├── wc0319a_7235wh.gif
│ │ │ ├── web_bottom.png
│ │ │ ├── web_top.png
│ │ │ ├── weixin.png
│ │ │ ├── wylpc0517_7150wh.gif
│ │ │ └── zp0516b_7331wh.gif
│ │ ├── utils
│ │ │ └── MathSalary.java
│ │ └── 正则表达式系统教程.CHM
│ └── 网络爬虫学习目标 (3天版本).doc
└── 爬虫.zip
306 directories, 725 files
评论